/*****************************************************************************
 * Copyright (C) Stacy Curl. All rights reserved.                            *
 * ------------------------------------------------------------------------- *
 * The software in this package is published under the terms of the BSD      *
 * style license a copy of which has been included with this distribution in *
 * the LICENSE.txt file.                                                     *
 *****************************************************************************/
package picounit.verify;

import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Set;

public interface ExtendedStringConstraints extends StringConstraints {
	BooleanConstraints byChecking(boolean value);
	ByteConstraints byChecking(byte value);
	CharacterConstraints byChecking(char value);
	DoubleConstraints byChecking(double value);
	FloatConstraints byChecking(float value);
	IntegerConstraints byChecking(int value);
	LongConstraints byChecking(long value);
	ShortConstraints byChecking(short value);

	FileConstraints byChecking(File value);
	StringConstraints byChecking(String value);

	<T> TypedConstraints<T> byChecking(T value);

	BooleanArrayConstraints byChecking(boolean ... value);
	ByteArrayConstraints byChecking(byte ... value);
	CharacterArrayConstraints byChecking(char ... value);
	DoubleArrayConstraints byChecking(double ... value);
	FloatArrayConstraints byChecking(float ... value);
	IntegerArrayConstraints byChecking(int ... value);
	LongArrayConstraints byChecking(long ... value);
	ShortArrayConstraints byChecking(short ... value);
	
	StringArrayConstraints byChecking(String ... value);
	
	<T> TypedArrayConstraints<T> byChecking(T ... value);
	
	<T> CollectionConstraints<T> byChecking(Collection<T> value);
	<T> ListConstraints<T> byChecking(List<T> value);
	<T> SetConstraints<T> byChecking(Set<T> value);
}
